﻿// -----------------------------------------------------------------------
// <copyright file="Humano.cs" company="Storytelling">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------
namespace Storytelling.Entidades
{
    using System.Collections.Generic;

    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public class Humano : Nomeado
    {
        public long JogadorId { get; set; }

        public long CronicaId { get; set; }

        public virtual Usuario Jogador { get; set; }

        public virtual Cronica Cronica { get; set; }

        public Virtude? Virtude
        {
            get { return (Virtude?)VirtudeEnum; }
            set { VirtudeEnum = (int?)value; }
        }

        public int? VirtudeEnum { get; set; }

        public Vicio? Vicio
        {
            get { return (Vicio?)VicioEnum; }
            set { VicioEnum = (int?)value; }
        }

        public int? VicioEnum { get; set; }

        public Tamanho? Tamanho
        {
            get { return (Tamanho?)TamanhoEnum; }
            set { TamanhoEnum = (int?)value; }
        }

        public int? TamanhoEnum { get; set; }

        public int Fator { get; set; }

        public int Experiencia { get; set; }

        public int Moralidade { get; set; }

        public int Vitalidade { get; set; }

        public int? DanoContusao { get; set; }

        public int? DanoLetal { get; set; }

        public int? DanoAgravado { get; set; }

        public int Energia { get; set; }

        public int Vontade { get; set; }

        public int? VontadeTemporaria { get; set; }

        public Penalidade? Penalidade
        {
            get { return (Penalidade?)PenalidadeEnum; }
            set { PenalidadeEnum = (int?)value; }
        }

        public int? PenalidadeEnum { get; set; }

        public virtual ICollection<HumanoEspecializacao> Especializacoes { get; set; }

        public virtual ICollection<HumanoVantagem> Vantagens { get; set; }

        public virtual ICollection<HumanoDesvantagem> Desvantagens { get; set; }

        public virtual ICollection<HumanoArma> Armas { get; set; }

        public virtual ICollection<HumanoItem> Itens { get; set; }

        #region Atributos

        public int Forca { get; set; }
        public int Destreza { get; set; }
        public int Vigor { get; set; }

        public int Presenca { get; set; }
        public int Manipulacao { get; set; }
        public int Autocontrole { get; set; }

        public int Inteligencia { get; set; }
        public int Raciocinio { get; set; }
        public int Perseveranca { get; set; }

        #endregion

        #region Habilidades

        public int? Armamento { get; set; }
        public int? ArmasDeFogo { get; set; }
        public int? Briga { get; set; }
        public int? Conducao { get; set; }
        public int? Dissimulacao { get; set; }
        public int? Esportes { get; set; }
        public int? Furto { get; set; }
        public int? Sobrevivencia { get; set; }

        public int? Astucia { get; set; }
        public int? Empatia { get; set; }
        public int? Expressao { get; set; }
        public int? Intimidacao { get; set; }
        public int? Manha { get; set; }
        public int? Persuasao { get; set; }
        public int? Socializacao { get; set; }
        public int? TratoAnimais { get; set; }

        public int? Ciencias { get; set; }
        public int? Erudicao { get; set; }
        public int? Informatica { get; set; }
        public int? Investigacao { get; set; }
        public int? Medicina { get; set; }
        public int? Ocultismo { get; set; }
        public int? Oficios { get; set; }
        public int? Politica { get; set; }

        #endregion
    }
}
